﻿
namespace FRL.DebtChase.Web
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;


    // The MetadataTypeAttribute identifies aspnet_UsersMetadata as the class
    // that carries additional metadata for the aspnet_Users class.
    [MetadataTypeAttribute(typeof(aspnet_Users.aspnet_UsersMetadata))]
    public partial class aspnet_Users
    {

        // This class allows you to attach custom attributes to properties
        // of the aspnet_Users class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class aspnet_UsersMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private aspnet_UsersMetadata()
            {
            }

            public Guid ApplicationId { get; set; }

            public Contact Contact { get; set; }

            public Nullable<int> ContactId { get; set; }

            public bool IsAnonymous { get; set; }

            public DateTime LastActivityDate { get; set; }

            public string LoweredUserName { get; set; }

            public string MobileAlias { get; set; }

            public Guid UserId { get; set; }

            public string UserName { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies BankAccountMetadata as the class
    // that carries additional metadata for the BankAccount class.
    [MetadataTypeAttribute(typeof(BankAccount.BankAccountMetadata))]
    public partial class BankAccount
    {

        // This class allows you to attach custom attributes to properties
        // of the BankAccount class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class BankAccountMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private BankAccountMetadata()
            {
            }

            public string AccountName { get; set; }

            public string AccountNo { get; set; }

            public int BankAccountId { get; set; }

            public BankAccountStatus BankAccountStatus { get; set; }

            public short BankAccountStatusId { get; set; }

            public BankAccountType BankAccountType { get; set; }

            public short BankAccountTypeId { get; set; }

            public string City { get; set; }

            public Country Country { get; set; }

            public string CountryCode { get; set; }

            public Currency Currency { get; set; }

            public string CurrencyCode { get; set; }

            public DcEntity DcEntity { get; set; }

            public int EntId { get; set; }

            public string IBAN { get; set; }

            public string Line1 { get; set; }

            public string Line2 { get; set; }

            public string Line3 { get; set; }

            public string Notes { get; set; }

            public string Postcode { get; set; }

            public string Province { get; set; }

            public string SortCode { get; set; }

            public string SwiftCode { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies BankAccountStatusMetadata as the class
    // that carries additional metadata for the BankAccountStatus class.
    [MetadataTypeAttribute(typeof(BankAccountStatus.BankAccountStatusMetadata))]
    public partial class BankAccountStatus
    {

        // This class allows you to attach custom attributes to properties
        // of the BankAccountStatus class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class BankAccountStatusMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private BankAccountStatusMetadata()
            {
            }

            public EntityCollection<BankAccount> BankAccounts { get; set; }

            public short StatusId { get; set; }

            public string Title { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies BankAccountTypeMetadata as the class
    // that carries additional metadata for the BankAccountType class.
    [MetadataTypeAttribute(typeof(BankAccountType.BankAccountTypeMetadata))]
    public partial class BankAccountType
    {

        // This class allows you to attach custom attributes to properties
        // of the BankAccountType class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class BankAccountTypeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private BankAccountTypeMetadata()
            {
            }

            public EntityCollection<BankAccount> BankAccounts { get; set; }

            public string Title { get; set; }

            public short TypeId { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ContactMetadata as the class
    // that carries additional metadata for the Contact class.
    [MetadataTypeAttribute(typeof(Contact.ContactMetadata))]
    public partial class Contact
    {

        // This class allows you to attach custom attributes to properties
        // of the Contact class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ContactMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ContactMetadata()
            {
            }

            public string AKA { get; set; }

            public EntityCollection<aspnet_Users> aspnet_Users { get; set; }

            [Include]
            public EntityCollection<ContactAddress> ContactAddresses { get; set; }

            [Include]
            public EntityCollection<ContactHoliday> ContactHolidays { get; set; }

            public int ContactId { get; set; }

            [Include]
            public EntityCollection<ContactPoint> ContactPoints { get; set; }

            public ContactStatus ContactStatus { get; set; }

            public Nullable<short> ContactStatusId { get; set; }

            public ContactType ContactType { get; set; }

            public Nullable<short> ContactTypeId { get; set; }

            public DcEntity DcEntity { get; set; }

            public string DOB { get; set; }

            public int EntId { get; set; }

            public string FirstName { get; set; }

            public string Initials { get; set; }

            public string Notes { get; set; }

            public string Position { get; set; }

            public string Surname { get; set; }

            public string Title { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ContactAddressMetadata as the class
    // that carries additional metadata for the ContactAddress class.
    [MetadataTypeAttribute(typeof(ContactAddress.ContactAddressMetadata))]
    public partial class ContactAddress
    {

        // This class allows you to attach custom attributes to properties
        // of the ContactAddress class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ContactAddressMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ContactAddressMetadata()
            {
            }

            public int AddressId { get; set; }

            public short AddressStatusId { get; set; }

            public short AddressTypeId { get; set; }

            public string City { get; set; }

            public Contact Contact { get; set; }

            public ContactAddressStatus ContactAddressStatus { get; set; }

            public ContactAddressType ContactAddressType { get; set; }

            public int ContactId { get; set; }

            public Country Country { get; set; }

            public string CountryCode { get; set; }

            public string Line1 { get; set; }

            public string Line2 { get; set; }

            public string Line3 { get; set; }

            public string Notes { get; set; }

            public string Postcode { get; set; }

            public string Province { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ContactAddressStatusMetadata as the class
    // that carries additional metadata for the ContactAddressStatus class.
    [MetadataTypeAttribute(typeof(ContactAddressStatus.ContactAddressStatusMetadata))]
    public partial class ContactAddressStatus
    {

        // This class allows you to attach custom attributes to properties
        // of the ContactAddressStatus class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ContactAddressStatusMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ContactAddressStatusMetadata()
            {
            }

            public EntityCollection<ContactAddress> ContactAddresses { get; set; }

            public short StatusId { get; set; }

            public string Title { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ContactAddressTypeMetadata as the class
    // that carries additional metadata for the ContactAddressType class.
    [MetadataTypeAttribute(typeof(ContactAddressType.ContactAddressTypeMetadata))]
    public partial class ContactAddressType
    {

        // This class allows you to attach custom attributes to properties
        // of the ContactAddressType class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ContactAddressTypeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ContactAddressTypeMetadata()
            {
            }

            public string Code { get; set; }

            public EntityCollection<ContactAddress> ContactAddresses { get; set; }

            public string Title { get; set; }

            public short TypeId { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ContactHolidayMetadata as the class
    // that carries additional metadata for the ContactHoliday class.
    [MetadataTypeAttribute(typeof(ContactHoliday.ContactHolidayMetadata))]
    public partial class ContactHoliday
    {

        // This class allows you to attach custom attributes to properties
        // of the ContactHoliday class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ContactHolidayMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ContactHolidayMetadata()
            {
            }

            public Contact Contact { get; set; }

            public int ContactId { get; set; }

            public DateTime EndDate { get; set; }

            public int HolidayId { get; set; }

            public Nullable<int> StandinId { get; set; }

            public DateTime StartDate { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ContactPointMetadata as the class
    // that carries additional metadata for the ContactPoint class.
    [MetadataTypeAttribute(typeof(ContactPoint.ContactPointMetadata))]
    public partial class ContactPoint
    {

        // This class allows you to attach custom attributes to properties
        // of the ContactPoint class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ContactPointMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ContactPointMetadata()
            {
            }

            public Contact Contact { get; set; }

            public int ContactId { get; set; }

            public ContactPointStatus ContactPointStatus { get; set; }

            public ContactPointType ContactPointType { get; set; }

            public string Notes { get; set; }

            public string PointDetails { get; set; }

            public int PointId { get; set; }

            public short PointStatusId { get; set; }

            public short PointTypeId { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ContactPointStatusMetadata as the class
    // that carries additional metadata for the ContactPointStatus class.
    [MetadataTypeAttribute(typeof(ContactPointStatus.ContactPointStatusMetadata))]
    public partial class ContactPointStatus
    {

        // This class allows you to attach custom attributes to properties
        // of the ContactPointStatus class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ContactPointStatusMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ContactPointStatusMetadata()
            {
            }

            public EntityCollection<ContactPoint> ContactPoints { get; set; }

            public short StatusId { get; set; }

            public string Title { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ContactPointTypeMetadata as the class
    // that carries additional metadata for the ContactPointType class.
    [MetadataTypeAttribute(typeof(ContactPointType.ContactPointTypeMetadata))]
    public partial class ContactPointType
    {

        // This class allows you to attach custom attributes to properties
        // of the ContactPointType class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ContactPointTypeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ContactPointTypeMetadata()
            {
            }

            public EntityCollection<ContactPoint> ContactPoints { get; set; }

            public string Title { get; set; }

            public short TypeId { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ContactStatusMetadata as the class
    // that carries additional metadata for the ContactStatus class.
    [MetadataTypeAttribute(typeof(ContactStatus.ContactStatusMetadata))]
    public partial class ContactStatus
    {

        // This class allows you to attach custom attributes to properties
        // of the ContactStatus class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ContactStatusMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ContactStatusMetadata()
            {
            }

            public EntityCollection<Contact> Contacts { get; set; }

            public short StatusId { get; set; }

            public string Title { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ContactTypeMetadata as the class
    // that carries additional metadata for the ContactType class.
    [MetadataTypeAttribute(typeof(ContactType.ContactTypeMetadata))]
    public partial class ContactType
    {

        // This class allows you to attach custom attributes to properties
        // of the ContactType class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ContactTypeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ContactTypeMetadata()
            {
            }

            public EntityCollection<Contact> Contacts { get; set; }

            public string Title { get; set; }

            public short TypeId { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies CountryMetadata as the class
    // that carries additional metadata for the Country class.
    [MetadataTypeAttribute(typeof(Country.CountryMetadata))]
    public partial class Country
    {

        // This class allows you to attach custom attributes to properties
        // of the Country class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class CountryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CountryMetadata()
            {
            }

            public short AddressFormatId { get; set; }

            public EntityCollection<BankAccount> BankAccounts { get; set; }

            public EntityCollection<ContactAddress> ContactAddresses { get; set; }

            public CountryAddressFormat CountryAddressFormat { get; set; }

            public string CountryCode { get; set; }

            [Include]
            public EntityCollection<CountryProvince> CountryProvinces { get; set; }

            public Currency Currency { get; set; }

            public string CurrencyCode { get; set; }

            public string ISOAlpha3 { get; set; }

            public short ISONumeric { get; set; }

            public string Name { get; set; }

            public Nullable<short> PhoneCode { get; set; }

            public string PostcodeName { get; set; }

            public string ProvinceType { get; set; }

            public string UseAbbrProv { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies CountryAddressFormatMetadata as the class
    // that carries additional metadata for the CountryAddressFormat class.
    [MetadataTypeAttribute(typeof(CountryAddressFormat.CountryAddressFormatMetadata))]
    public partial class CountryAddressFormat
    {

        // This class allows you to attach custom attributes to properties
        // of the CountryAddressFormat class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class CountryAddressFormatMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CountryAddressFormatMetadata()
            {
            }

            public EntityCollection<Country> Countries { get; set; }

            public string Description { get; set; }

            public string Format { get; set; }

            public short FormatId { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies CountryProvinceMetadata as the class
    // that carries additional metadata for the CountryProvince class.
    [MetadataTypeAttribute(typeof(CountryProvince.CountryProvinceMetadata))]
    public partial class CountryProvince
    {

        // This class allows you to attach custom attributes to properties
        // of the CountryProvince class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class CountryProvinceMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CountryProvinceMetadata()
            {
            }

            public Country Country { get; set; }

            public string CountryCode { get; set; }

            public string ProvCode { get; set; }

            public string Province { get; set; }

            public string Region { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies CurrencyMetadata as the class
    // that carries additional metadata for the Currency class.
    [MetadataTypeAttribute(typeof(Currency.CurrencyMetadata))]
    public partial class Currency
    {

        // This class allows you to attach custom attributes to properties
        // of the Currency class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class CurrencyMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CurrencyMetadata()
            {
            }

            public EntityCollection<BankAccount> BankAccounts { get; set; }

            public EntityCollection<Country> Countries { get; set; }

            public string CurrencyCode { get; set; }

            public Nullable<double> ExchangeRate { get; set; }

            public string Name { get; set; }

            public string Sign { get; set; }

            public string SubUnitName { get; set; }

            public short SubUnits { get; set; }

            public string Symbol { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies DcEntityMetadata as the class
    // that carries additional metadata for the DcEntity class.
    [MetadataTypeAttribute(typeof(DcEntity.DcEntityMetadata))]
    public partial class DcEntity
    {

        // This class allows you to attach custom attributes to properties
        // of the DcEntity class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class DcEntityMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DcEntityMetadata()
            {
            }

            public EntityCollection<BankAccount> BankAccounts { get; set; }

            [Include]
            public EntityCollection<Contact> Contacts { get; set; }

            public DcEntityRelationship DcEntityRelationship { get; set; }

            public DcEntityStatus DcEntityStatus { get; set; }

            public DcEntityType DcEntityType { get; set; }

            public int EntId { get; set; }

            public string EntName { get; set; }

            public short EntRelationId { get; set; }

            public Nullable<short> EntStatusId { get; set; }

            public short EntTypeId { get; set; }

            public string Notes { get; set; }

            public string Website { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies DcEntityRelationshipMetadata as the class
    // that carries additional metadata for the DcEntityRelationship class.
    [MetadataTypeAttribute(typeof(DcEntityRelationship.DcEntityRelationshipMetadata))]
    public partial class DcEntityRelationship
    {

        // This class allows you to attach custom attributes to properties
        // of the DcEntityRelationship class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class DcEntityRelationshipMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DcEntityRelationshipMetadata()
            {
            }

            public EntityCollection<DcEntity> DcEntities { get; set; }

            public short RelationId { get; set; }

            public string Title { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies DcEntityStatusMetadata as the class
    // that carries additional metadata for the DcEntityStatus class.
    [MetadataTypeAttribute(typeof(DcEntityStatus.DcEntityStatusMetadata))]
    public partial class DcEntityStatus
    {

        // This class allows you to attach custom attributes to properties
        // of the DcEntityStatus class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class DcEntityStatusMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DcEntityStatusMetadata()
            {
            }

            public EntityCollection<DcEntity> DcEntities { get; set; }

            public short StatusId { get; set; }

            public string Title { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies DcEntityTypeMetadata as the class
    // that carries additional metadata for the DcEntityType class.
    [MetadataTypeAttribute(typeof(DcEntityType.DcEntityTypeMetadata))]
    public partial class DcEntityType
    {

        // This class allows you to attach custom attributes to properties
        // of the DcEntityType class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class DcEntityTypeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DcEntityTypeMetadata()
            {
            }

            public EntityCollection<DcEntity> DcEntities { get; set; }

            public string Title { get; set; }

            public short TypeId { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ReusableStringMetadata as the class
    // that carries additional metadata for the ReusableString class.
    [MetadataTypeAttribute(typeof(ReusableString.ReusableStringMetadata))]
    public partial class ReusableString
    {

        // This class allows you to attach custom attributes to properties
        // of the ReusableString class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ReusableStringMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ReusableStringMetadata()
            {
            }

            public ReusableStringType ReusableStringType { get; set; }

            public short TypeId { get; set; }

            public string Value { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ReusableStringTypeMetadata as the class
    // that carries additional metadata for the ReusableStringType class.
    [MetadataTypeAttribute(typeof(ReusableStringType.ReusableStringTypeMetadata))]
    public partial class ReusableStringType
    {

        // This class allows you to attach custom attributes to properties
        // of the ReusableStringType class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ReusableStringTypeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ReusableStringTypeMetadata()
            {
            }

            [Include]
            public EntityCollection<ReusableString> ReusableStrings { get; set; }

            public string Title { get; set; }

            public short TypeId { get; set; }
        }
    }
}
